$.namespace('sys.dept');

sys.dept = function() {
	var url = '',method = '';
	return {
		init : function() {
			this.initGrid();
			this.initComponents();
		},
		initComponents : function(){
			// 初始化部门树结构
			$('#parentId').combotree({
				url : ctxRest + '/sys/department/list',
				idFiled : 'id',
				textFiled : 'name',
				parentField : 'parentId',
				lines : true,
				onLoadSuccess : function(node, data){
					$(this).tree('collapseAll');
				}
			});
			
			$.ajax({
				type : 'GET',
				url : ctxRest + '/sys/basecode/get?classCode=yes_or_no',
				success : function(result){
					$('#isDistribute').combobox({
						textField : 'name',
						valueField: 'code',
						data : result
					});
					
					$('#isAudit').combobox({
						textField : 'name',
						valueField: 'code',
						data : result
					});
					
					$('#isFacility').combobox({
						textField : 'name',
						valueField: 'code',
						data : result
					});
				}
			});
			
//			$('#isDistribute').combobox({
//				method : 'GET',
//				url : ctxRest + '/sys/basecode/get?classCode=yes_or_no',
//				textField : 'name',
//				valueField: 'code'
//			});
//			
//			$('#isAudit').combobox({
//				method : 'GET',
//				url : ctxRest + '/sys/basecode/get?classCode=yes_or_no',
//				textField : 'name',
//				valueField: 'code'
//			})
			
		},
		initGrid : function() {
			$('#grid').treegrid({
				url : ctxRest + '/sys/department/list',
				fit : true,
				fitColumns : true,
				nowrap : true,
				striped : true,
				remoteSort : false,
				singleSelect : true,
				border : false,
				lines : true,
				idField : 'id',
				treeField : 'name',
				parentField : 'parentId',
				method : 'POST',
				contentType : 'application/json;charset=utf-8',
				columns : [ [ {
					title : '组织名称',
					field : 'name',
					width : 120
				}, {
					title : '组织编码',
					field : 'code',
					width : 100
				}, {
					title : '组织类型',
					field : 'type',
					width : 100,
					formatter : function(value, row, index) {
						return "";
					}
				}, {
					title : '联系方式',
					field : 'phone',
					width : 100
				}, {
					title : '序号',
					field : 'sort',
					width : 60
				}, {
					title : '派发部门',
					field : 'isDistribute',
					width : 80,
					formatter : function(value, row, index){
						return  (value == '1') ? '<font color="green">是</font>' : '否';
					}
				}, {
					title : '设施工单派发',
					field : 'isFacility',
					width : 80,
					formatter : function(value, row, index){
						return  (value == '1') ? '<font color="green">是</font>' : '否';
					}
				},{
					title : '审核部门',
					field : 'isAudit',
					width : 80,
					formatter : function(value, row, index){
						return  (value == '1') ? '<font color="green">是</font>' : '否';
					}
				}, {
					title : '详细地址',
					field : 'address',
					width : 150
				}, {
					title : '备注',
					field : 'remark',
					width : 150
				}] ],
				toolbar : '#toolbar',
				onDblClickRow : function(row) {
					sys.dept.showEditForm();
				},
				onLoadSuccess : function(node, data){
					$(this).treegrid('collapseAll');
				}
			});
		},
		showForm : function() {
			$('#fmDlg').dialog('open');
			$('#fm').form('clear');
			var obj = $('#grid').treegrid('getSelected');
			if (obj) {
				if(obj.parentId){
					$('#parentId').combotree('setValue', obj.id);
				}
			}
			url = ctxRest + '/sys/department/create';
			method = 'POST';
		},
		showEditForm : function(){
			var row = $('#grid').datagrid('getSelected');
			if (!row) {
				$.messager.alert('提示', '请选择要修改的数据', 'info');
				return;
			}
			if (row.parentId == '0') {
				row.parentId = '';
			}
			$('#fmDlg').dialog('open');
			$('#fm').form('load', row);
			
			
			url = ctxRest + '/sys/department/update';
			method = 'POST';
		},
		getFormData : function(){
			var obj;
			var form = $('#fm');
			if (form.form('validate')) {
				obj = $.serializeObject(form);
				if (!obj.parentId) {
					obj.parentId = '0';
				}
			}
			return obj;
		},
		saveOrupdate : function(){
			var obj = this.getFormData();
			if (obj) {
				$.ajax({
					type : method,
					url : url,
					data : JSON.stringify(obj),
					contentType : 'application/json;charset=UTF-8',
					beforeSend : function(){progressLoad();},
					success : function(result) {
						progressClose();
						if (result && result.errcode == 0) {
							$('#fmDlg').dialog('close');
							$('#grid').treegrid('reload');
							$('#parentId').combotree('reload');
						}
					}
				})
			}
		},
		remove : function(){
			var row = $('#grid').datagrid('getSelected');
			if (!row) {
				$.messager.alert('提示', '请选择要删除的数据', 'info');
				return;
			}
			$.messager.confirm('提示', '是否要删除该数据？', function(flag) {
				if (flag) {
					progressLoad();
					$.ajax({
						type : 'GET',
						url : ctxRest + '/sys/department/delete?id=' + row.id,
						success : function(result) {
							progressClose();
							if (result && result.errcode == 0) {
								$('#grid').treegrid('reload');
							}
						}
					})
				}
			})
		}
	};
}();

$(function() {
	sys.dept.init();
})